It is known in the art to serve content, including text, graphics, multimedia or other pages in a variety of formats from a server to a client. It is also known that client devices can include display devices on which visual representations of information can be presented, and that the client devices usually include graphics hardware and software for rendering or generating the viewable display contents. A server can be employed to generate data, transmitted to a client over a communication network, which is then used to generate the viewable content on the client's display.
Some systems generate information at the server and rely on the client to generate the graphical content to be presented on its display. However, other systems allow a server to more directly control the contents of a client's display by generating the graphical information in graphic format at the server and delivering this graphic data to the client for presentation.
For example, the X Window (sometimes X11) framework, originating at MIT, provided a windowing system for bitmap display of information of a client terminal, said bitmap generated substantially by a server, although the client machine's hardware and software remained necessary to facilitate the physical transfer of viewable content to the client screen. FIG. 1 illustrates the prior art X Windows architecture 10 as publicly described at http://en.wikipedia.org/wiki/X-windows. The cited Web page is only mentioned as a descriptive aid, which may or may not in itself be prior art, but it describes its authors' opinion of the X Windows prior art, and like any Web page, it may not be accurate and it may be altered or removed from time to time by its provider. An example of a display output 20 resulting on a client computer, from the same public source is shown in FIG. 2. X Windows therefore allowed programmers to engage a toolbox to leverage the graphical user interface (GUI) building blocks on a client machine running some operating system (OS). The result aimed to replicate the behavior of local operation of the GUI applications in general and allowed a client user to interact with the applications using the usual client-based GUI interface methods.
Another more recent example of desktop virtualization technology was offered by Citrix Systems, Inc. in the context of software as a service (SaaS) and cloud computing environments. These applications allowed users to receive server-based data to virtually run applications on the client.
Other prior art provided streaming of display data to a client machine, but such systems are limited by the speed or bandwidth of the server-client communication link. Also, such systems are limited by the computing resources available to the client (or in some cases the server) which limit the number of windows, frames, pixels, or display data generally from being delivered to the client. Most difficult would be graphics-intensive applications requiring realtime delivery of high frame rates to the client over the communication link.
Despite the virtual desktop and remote access technologies known in the art, there remains a need to improve the effectiveness, efficiency and speed of applications that rely on server-client content provided over a network, especially for relatively small client devices like smartphones that have limited local resources and communication bandwidth and graphics capabilities. This disclosure addresses systems and methods for doing so.